Mi aplicación solicita permiso para acceder a la ubicación de un usuario en la Pantalla A, por lo que su ubicación se representa en un mapa en la Pantalla B. Cuando navego a la Pantalla B, recibo un rechazo de promesa y el mapa no se carga.
A continuación se muestra mi código:
Gira hasta que se otorgan los permisos de ubicación actuales
const renderLoading = () => { if (isLoading) { return ( <View style = {styles.indicator}> <ActivityIndicator color = 'black' size = 'large' animated = {false} /> <Text style = { styles.text }>{i18n.t('locate')}</Text> </View> ); }else { return null; } }UseFocusEffect que obtiene geolocalización
useFocusEffect( React.useCallback(()=> { let isActive = true; const fetchGeoPosition = async() => { navigator.geolocation.getCurrentPositionAsync( //claims undefined is not a function position => { if (isActive){ setUserLatitude(position.coords.latitude); setUserLongitude(position.coords.longitude); setPositionError(null); console.log('Location Accessed') } setIsLoading(false) }, error => isActive && setPositionError(error.message), {enableHighAccuracy: true, timeout: 0, maximumAge: 1000} ); }Cómo me despliego en el mapa
<View style = {styles.container}> {(renderLoading())} <View style = {styles.header}> <MapView provider={PROVIDER_GOOGLE} style={styles.map} region= {{ latitude: user_latitude, longitude: user_longitude, latitudeDelta: 0.1451, longitudeDelta: 0.1451 }} > <Marker coordinate={ {latitude: user_latitude, longitude: user_longitude, error: position_error, }} /> </MapView>